﻿var permissao;
$(document).ready(function () {
    $(".nav li").removeClass("active");
    $(".nav li.parcelas").addClass("active");

    var width = $(".container").width();

    var colModel = [
            { display: 'CÓD', name: 'id_parcela', width: width * 0.1, sortable: true, align: 'center' },
            { display: 'Paciente', name: 'nome', width: width * 0.2, sortable: true, align: 'left' },
            { display: 'Tipo', name: 'tipo', width: width * 0.10, sortable: true, align: 'left' },
            { display: 'Procedimento', name: 'nome_procedimento', width: width * 0.20, sortable: true, align: 'left' },
            { display: 'Data Vencimento', name: 'data_vencimento', width: width * 0.10, sortable: true, align: 'center' },
            { display: 'Valor', name: 'valor', width: width * 0.07, sortable: true, align: 'center' },
            { display: 'Situação', name: 'status', width: width * 0.10, sortable: false, align: 'center' }
    ];
    var buttons = [
           /* { name: 'Adicionar', bclass: 'gridBtnCliente', onpress: function () { } },*/
            { name: 'Editar', bclass: 'edit', onpress: function () { editaValor(); } }
    ];
    var searchitems = [
        { display: 'CÓD', name: 'id_procedimento_cliente' },
        { display: 'Nome', name: 'nome', isdefault: true },
        { display: 'Procedimento', name: 'nome_procedimento' },
        { display: 'Tipo', name: 'tipo' }
    ];

    $("#grid").flexigrid({
        url: "Parcelas.aspx/getDados",
        dataType: 'json',
        colModel: colModel,
        buttons: buttons,
        searchitems: searchitems,
        sortname: "id_parcela",
        sortorder: "asc",
        usepager: true,
        title: "Parcelas",
        useRp: true,
        rp: 50,
        showTableToggleBtn: true,
        height: screen.availHeight * 0.49,
        onEndAjax: appendSelect
    });

    appendSelect();

    $("#cliente").bind('change', atualizaParcelas);
    $("#procedimento").bind('change', atualizaParcelas);

    permissao = getPermissao();
});

function getPermissao() {
    var ret;
    $.ajax({
        type: 'POST',
        url: 'Comparecimento.aspx/getPermissao',
        dataType: 'json',
        async: false,
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            ret = data.d;
        }
    });
    return ret;
}

function appendSelect() {
    var select =
        "<select class='selectStatus' style=''>" +
        "   <option value='EM DIA' >EM DIA</option>" +
        "   <option value='PAGO' >PAGO</option>" +
        "   <option value='PAGO CLINICA' >PAGO CLINICA</option>" +
        "   <option value='ATRASADA' >ATRASADA</option>" +
        "   <option value='TRANSFERIDA' >TRANSFERIDA</option>" +
        "   <option value='PROMOCAO' >PROMOÇÃO</option>" +
        "</select>";
    $("#grid tr").each(function () {
        var obj = $(this).find("td").last().find("div");
        var situacao = obj.text();
        var obj2 = $(select);
        obj2.change(trocaStatus);
        obj2.val(situacao);
        obj.replaceWith(obj2);
    });
}

function trocaStatus(event) {
    //ver permissao
    id_parcela = ($(this).parentsUntil("tr").parent().find("td:first div").text());
    new_value = $(this).val();
    id = ($(this).parentsUntil("tr").parent().find("td:first div").text());
    novoStatus = $(this).val();
    if (permissao == 0) {
        $("#grid").flexReload();
        alert("Você possui permissão apenas para visualização do sistema");
    } else
        if (permissao == 2) {//se for adm faz a operacao de troca de status normal
            if (confirm("Confirmar alteração do registro?")) {
                
                $.ajax({
                    type: 'POST',
                    url: 'Parcelas.aspx/editTable',
                    data: "{id_parcela:" + $(this).parentsUntil("tr").parent().find("td:first div").text() +
                           ", newValue:'" + $(this).val() + "'}",
                    dataType: 'json',
                    contentType: "application/json; charset=utf-8",
                    success: function (data) {
                        $("#grid").flexReload();
                        alert("Alteração concluída com sucesso");
                    },
                    error: function (error) { alert("Alteração não concluída. Erro."); }
                });
            }
        } else {//se nao for adm, primeiro verifica se a parcela esta EM DIA, pois só pode mudar esse tipo de parcela
            $.ajax({
                type: 'POST',
                url: 'Parcelas.aspx/getStatus',
                data: "{id_parcela:'" + id + "'}",
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    if (data.d === "EM DIA") {
                        if (novoStatus === "PAGO CLINICA") {
                            //o problema ta daki pra baixo
                            if (confirm("Confirmar alteração do registro?")) {
                                    $.ajax({
                                        type: 'POST',
                                        url: 'Parcelas.aspx/editTable',
                                        data: "{id_parcela:" + id_parcela +
                                               ", newValue:'" + new_value + "'}",
                                        dataType: 'json',
                                        contentType: "application/json; charset=utf-8",
                                        success: function (data) {
                                            $("#grid").flexReload();
                                            alert("Alteração concluída com sucesso");
                                        }, error: function (error) { alert("errol");}
                                    });
                            }
                        } else {
                            alert("Esse usuário pode apenas alterar parcelas para PAGO CLINICA");
                            $("#grid").flexReload();
                        }
                    } else {
                        alert("Esse usuário pode apenas alterar parcelas que estão EM DIA");
                        $("#grid").flexReload();
                    }
                }, error: function (error) {
                    //alert("Erro de permissão.");
                }
            });
        }
}

function atualizaParcelas() {
    var idcliente = $("#cliente").val();
    var idprocedimento = $("#procedimento").val();
    $.ajax({
        type: 'POST',
        url: 'Parcelas.aspx/refreshData',
        data: "{idCliente:" + idcliente + ", idProcedimento:" + idprocedimento + "}",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            $("#grid").flexReload();
        }
    });
}

function editaValor() {
    id = $(".flexigrid .trSelected td:eq(0)").text();
    if (id == "")
        alert('Nenhuma parcela foi selecionada para Edição');
    else {
        $('#formulario').modal('show');
        $('#tabCadastro a:first').tab('show');
    }
}

function CancelButton() {
    $("#formulario").modal('toggle');
    $(".tab-pane input").val('');
}


function ConfirmAddButton() {

    $.ajax({
        type: 'POST',
        url: 'Parcelas.aspx/edit',
        data: "{id:" + id + ",novoValor:'" + $("#value").val() + "'}",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            atualizaParcelas();
        }
    });

    $("#formulario").modal('toggle');
    $(".tab-pane input").val('');
}

var id = undefined;